package 力扣题库;

import java.util.HashSet;
import java.util.Set;

public class p219存在重复元素II {

    public boolean containsNearbyDuplicate(int[] nums, int k) {
        //哈希表
        Set<Integer> set=new HashSet<>();

        for (int i = 0; i <nums.length; i++) {
            if (set.contains(nums[i])) {
                return true;
            }
            set.add(nums[i]);
            if (set.size()>k) {
                //删掉数组中前面的元素，因为最前面的元素到当前元素的距离大于k
                set.remove(nums[i-k]);
            }
        }
        return false;
    }


    public boolean containsNearbyDuplicate1(int[] nums, int k) {
        //暴力解法——超时
        for (int i = 0; i <nums.length; i++) {
            for (int j = i+1; j <nums.length; j++) {
                if (nums[i]!=nums[j]) {
                    continue;
                }else {
                    if (Math.abs(i-j)<=k) {
                        return true;
                    }
                }

            }
        }
        return false;

    }
}
